package com.lzq.leetcode.hoot100;

import java.util.*;

public class s438 {
    public List<Integer> findAnagrams(String s, String p) {
        List<Integer> ret = new ArrayList<>();

        int sLen = s.length();
        int pLen = p.length();
        if (sLen < pLen)    return ret;


        int []cp = new int[26];
        for (int i=0; i<pLen; i++) {
            cp[p.charAt(i) - 'a']++;
        }

        int []cur = new int[26];
        for (int i=0; i<pLen; i++) {
            cur[s.charAt(i) - 'a']++;
        }

        if (Arrays.equals(cp, cur)) ret.add(0);

        for (int i=pLen; i<s.length(); i++) {
            int star = i-pLen;
            cur[s.charAt(i) - 'a']++;
            cur[s.charAt(star)-'a']--;
            if (Arrays.equals(cp, cur)) ret.add(star);
        }

        return ret;
    }
}
